﻿namespace ch9
{
    internal class Text6
    {
        static void Main(string[] args)
        {
            Console.WriteLine("异常捕获");
//1.作用
            //将玩家输入内容 存储 string类型的变量（容器）中
            string a=Console.ReadLine();
            //转字符串为数值类型时要合法合规
            int b = int.Parse(a);
            //通过对异常捕获的学习 可以避免当代码报错时 造成的程序卡死的情况

            //2.基本语法
            //必备部分
            try
            {
                //希望进行异常捕获的代码块
                //放到try中
                //如果try中的代码报错了，不会让程序卡死
            }
            catch
            {
                //如果出错了 会执行 catch中的代码来捕获异常
            }
            //可选部分
            finally
            { 
                //最后执行的代码  不管有没有出错，都会执行其中的代码
                //目前可以不用写
            }
            //注意：异常捕获代码基本不需要加；在 里面写逻辑代码时，每一句代码才加；

//3.实践
            try
            {
                string a1 = Console.ReadLine();
                int b1 = int.Parse(a1);
                Console.WriteLine(b1);
            }
            catch 
            {
                Console.WriteLine("请输入合法信息！");
            }
            finally
            {
                Console.WriteLine("输入完毕，感谢配合！QwQ");

                //练习
                //1.请用户输入一个数字，如果输入有错，就告诉用户输入错误

                try
                {
                    string  d1 = Console.ReadLine();
                    long  d2 = long.Parse(d1);
                    Console.WriteLine("输入数字为：" + d2);
                }
                catch
                {
                    Console.WriteLine("请输入正确信息！");
                }

                //2.提示用户输入姓名，语文数学和英语成绩，如果输入错误，则提示用户输入错误，否则将输入的字符串转换为整型变量存储。
                Console.WriteLine("请输入姓名：");
                Console.ReadLine();
                try
                {
                    Console.WriteLine("请输入语文成绩：");
                    string d3 = Console.ReadLine();
                    sbyte d3a = sbyte.Parse(d3);
                    Console.WriteLine("请输入数学成绩：");
                    string d4 = Console.ReadLine();
                    sbyte d4a = sbyte.Parse(d4);
                    Console.WriteLine("请输入英语成绩：");
                    string d5 = Console.ReadLine();
                    sbyte d5a = sbyte.Parse(d5);
                    //答案给了一种更方便的写法↓但是上面那么写也行
                    //sbyte d5a=sbyte.Parse(Console.ReadLine());
                }
                catch
                {
                    Console.WriteLine("输入错误！");
                }
            }
        }
    }
}
